Session initiation protocol enabled set-top device

ABSTRACT

Controlling delivery of media content at a network server is disclosed. A request for media channel guide information from a remote subscriber device is received. Media channel guide information is sent to the remote subscriber device in response to the request. A request for delivery of media content associated with a selected media channel is received. Media channel content associated with the selected media channel is directed to a media channel recording device associated with the subscriber.

RELATED APPLICATIONS

This application is a continuation of co-pending U.S. patent applicationSer. No. 11/394,693, entitled “Session Initiation Protocol EnabledSet-Top Device,” which was filed on Mar. 31, 2006, which is a divisionalof application Ser. No. 09/561,834, entitled “Session InitiationProtocol Enabled Set-Top Device,” which was filed on Apr. 28, 2000, nowU.S. Pat. No. 7,024,461, each of which are hereby incorporated herein byreference in their entirety.

FIELD OF THE INVENTION

The present invention relates generally to an improved communicationssystem and in particular to a communications device. Still moreparticularly, the present invention relates generally to a method andapparatus for enabling a communications device to perform functionsusing a session initiated protocol.

BACKGROUND OF THE INVENTION

Programming, such as subscription and pay-per-view video services, aredelivered to a subscriber's premises by both satellite and cabletransmission systems. The systems provide both analog and digital datastreams. A set-top device is typically used to receive programming anddistribute it in the premises of a subscriber. As used herein, the term“set-top” device or “set-top” system is an aggregation of componentsused to provide subscriber services. As communications technologycontinues to expand, subscribers are being presented with an everincreasing number of information sources in addition to satellite andcable transmission systems. For example, video programs may be receivedover networks, such as the Internet or public switched telephonesystems. Currently, such video programs are received by a computer orother device connected to the Internet. Other communications services,such as telephone service over public switched telephone systems, arehandled by terminal devices, such as telephones. As a result, asubscriber must interact with a number of different devices to use allof the different types of services being offered by different providers.Having to use many different devices to access services can befrustrating to a subscriber.

Therefore, it would be advantageous to have an improved method andapparatus for handling subscriber services from different sourceswithout requiring interaction with difference devices.

SUMMARY OF THE INVENTION

The present invention provides a method and apparatus for handlingsubscriber services from different sources without requiring interactionwith different devices. The present invention also provides a method andapparatus for receiving multimedia services using session initiationprotocol (SIP) messages received from a source, such as a server on anetwork. In one embodiment, a set-top device is provided in which a SIPcontrol is provided to register a subscriber with a server using SIPmessages. A connection to a network, such as the Internet, is providedto communicate with the server. The set-top device is placed in linewith the audio and video source to control audio and video streamspresented to the subscriber. The set-top device is also configured toreceive voice calls from a public switched telephone network (PSTN).Further, the set-top device includes a remote control mechanism, such asan infrared (IR) transmitter and receiver to receive input from thesubscriber and to control other devices using IR signals. Also,subscriber services customized for a particular subscriber may bedirected to the subscriber at a location when the subscriber registerswith the server through a set-top device at that location using SIP.Services, such as, for example, call screening, channel guides, video ondemand, and Web browsing are provided through the set-top device andmessaging with a server using SIP messages.

Other aspects and features of the present invention will become apparentto those ordinarily skilled in the art upon review of the followingdescription of specific embodiments of the invention in conjunction withthe accompanying figures.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the invention are setforth in the appended claims. The invention itself, however, as well asa preferred mode of use, further objectives and advantages thereof, willbest be understood by reference to the following detailed description ofan illustrative embodiment when read in conjunction with theaccompanying drawings, wherein:

FIG. 1 is a diagram of a communications system in which the presentinvention may be implemented;

FIG. 2 is a diagram of components in a home in accordance with apreferred embodiment of the present invention;

FIG. 3 is a block diagram illustrating a SIP enabled set-top device inaccordance with a preferred embodiment of the present invention;

In FIG. 4 is a functional diagram of components in a SIP enabledapplication in accordance with a preferred embodiment of the presentinvention;

FIG. 5 is a flowchart of a process for registering a subscriber inaccordance with a preferred embodiment of the present invention;

FIG. 6 is a flowchart of a process to handle requests received by aset-top device to route calls to a subscriber in accordance with apreferred embodiment of the present invention;

FIGS. 7A and 7B are diagrams illustrating a presentation of options to asubscriber for incoming call screening in accordance with a preferredembodiment of the present invention;

FIG. 8 is a flowchart of a process for call screening in accordance witha preferred embodiment of the present invention;

FIG. 9 is a diagram of a channel guide in accordance with a preferredembodiment of the present invention;

FIG. 10 is a flowchart of a process for displaying channel guideinformation in accordance with a preferred embodiment of the presentinvention;

FIG. 11 is a flowchart of a process for retrieving different types ofmedia streams in accordance with a preferred embodiment of the presentinvention;

FIG. 12 is a diagram of a Web page pushed to a subscriber in accordancewith a preferred embodiment of the present invention; and

FIG. 13 is a flowchart of a process for SIP enabled browsing inaccordance with a preferred embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

With reference now to the figures and in particular with reference nowto FIG. 1, a diagram of a communications system is illustrated in whichthe present invention may be implemented. Communications system 100includes a home 102, which is able to receive services from a number ofdifferent sources. Home 102 has a connection to public switchedtelephone network (PSTN) 104 through which home 102 is able to usetelephone services. This connection is usually provided throughtwisted-pair wire in the subscriber loop in PSTN 104. PSTN 104 providesan analog transmission network for voice calls. Additionally, aconnection between cable network 106 and home 102 is present in whichthe connections are provided by a coaxial cable. Cable televisionservices to home 102 are provided through a content provider using cablenetwork 106. Both analog and digital services may be provided throughcable network 106. Satellite network 107 provides digital services tohome 102.

A connection from home 102 to network 108 is present. In this example,network 108 is the Internet, with network 108 representing a worldwidecollection of networks and gateways that use the TCP/IP suite ofprotocols to communicate with one another. At the heart of the Internetis a backbone of high-speed data communication lines between major nodesor host computers consisting of thousands of commercial, government,educational, and other computer systems that route data and messages. Ofcourse, network 108 also may be implemented as a number of differenttypes of networks, such as, for example, network 108 may be a local areanetwork (LAN) or a wide area network (WAN). Additionally, network 108may be a broadband network providing broadband services. A broadbandservice is a service requiring transmission channels capable ofsupporting rates greater than 1.5 Mbps, a primary rate integratedservices digital network (ISDN), TS1, or DS1 in digital terminology.

In this example, proxy server 110 provides access for various servicesto home 102 across network 108. For example, proxy server 110 may beused to direct a call using voice over Internet Protocol (IP) to home102. This call may originate from a device in PSTN 104, with part of thecall path being over network 108. Also, proxy server 110 may receiverequests from home 102 for video and stream the requested video to home102. The connection between home 102 and proxy server 110 may takevarious forms, such as an Ethernet connection established using anasymmetric digital subscriber loop (ADSL) line or an integrated servicesdigital network (ISDN) line. Further, a high bandwidth twisted pair oroptical fiber also may be used to provide the connection between home102 and proxy server 110.

In accordance with a preferred embodiment of the present invention, atext based signaling protocol, such as, for example, session initiationprotocol (SIP), is used to create, modify, and terminate sessions withone or more subscribers at home 102. A device or application operatingon a device may establish a connection or session with a server on anetwork, such as a broadband network, to receive multimedia services.These services may include, for example, video telephony, audiostations, television station broadcasts, call screening services,channel guides, video on demand, and Web browsing services. Multimediasources provide these services. Multimedia sources may be, for example,cable companies, satellite programming companies, television networkcompanies, and internet broadcast companies. The multimedia sources alsomay take the form of multimedia data located in a storage device, suchas, for example, movies in a digital form on hard disk drives. Further,the present invention also provides a mechanism in which a particularuser or subscriber can be identified with a particular device. Theidentification of the subscriber is used to determine the type ofmultimedia services provided. These determinations may be made either atthe device or at the server. In the depicted examples, the device takesthe form of a set-top device located in home 102. Of course, the presentinvention is not limited to a set-top device and may be applied to othercommunications devices, such as, for example, a computer or atelevision.

SIP is an application layer control (signaling) protocol for creating,modifying, and terminating sessions with one or more participants. Thesesessions include Internet multimedia conferences, Internet telephonecalls, and multimedia distribution. Members in a session can communicatevia multicast, a mesh of unicast relations, or a combination of these.

SIP invitations are used to create sessions and carry sessiondescriptions, which allow participants to agree on a set of compatiblemedia types. SP supports user mobility by proxying and redirectingrequests to the user's current location. Users can register theircurrent location. SIP is not tied to any particular conference controlprotocol. SIP is designed to be independent of the lower-layer transportprotocol and can be extended with additional capabilities.

SIP can be used to initiate sessions, as well as invite members tosessions that have been advertised and established by other means.Sessions can be advertised using multicast protocols such as SAP,electronic mail, news groups, Web pages, or directories (LDAP), amongothers.

SIP transparently supports name mapping and redirection services,allowing the implementation of ISDN and Intelligent Network telephonysubscriber services. These facilities also enable personal mobility.Personal mobility is the ability of end users to originate calls,receive calls, and access subscribed telecommunication services on anyterminal and in any location, as well as the ability of the network toidentify end users as they move. Personal mobility is based on the useof a unique personal identity (i.e. personal number). Personal mobilitycomplements terminal mobility, such as the ability to maintaincommunications when moving a single end system from one subnet toanother. SIP supports five facets of establishing and terminatingmultimedia communications: (1) user location: determination of the endsystem to be used for communication; (2) user capabilities:determination of the media and media parameters to be used; (3) useravailability: determination of the willingness of the called party toengage in communications; (4) call setup: “ringing”, establishment ofcall parameters at both the called and calling party; and (5) callhandling: including transfer and termination of calls.

Through SIP, a subscriber at home 102 can register the subscriber'scurrent location. In such a case, the subscriber, when at home 102, canhave all calls directed to the subscriber sent to home 102 by proxyserver 110. A proxy server is an intermediary program that acts as botha server and a client for the purpose of making requests on behalf ofother clients. Requests are serviced internally or by passing them on,possibly after translation, to other servers. A proxy server interpretsand, if necessary, rewrites a request message before forwarding it. Aproxy server may be implemented using, for example, a computer. Theproxy on the server is an application that establishes the connectionbetween the sender and receiver. Proxy servers may act as a fire wall orcache information, such as web pages, email, or addresses.

SIP is independent of lower layer transport protocols and is used tostart sessions, while lower layer transport protocols are used to carrythe data. A session involves the activities taking place during theestablishment and release of a connection on a network. SIP allows forunicasting or multicasting and can invite both persons and robots, suchas a media storage service.

The registration capabilities provided by SIP allow for implementationof ISDN and Intelligent Network (IN) services. More specifically, SIPprovides for personal mobility in which a subscriber is able tooriginate and receive calls and access subscribed telecommunicationsservices in any location. A SIP enabled communications system is able toidentify a subscriber as the subscriber moves from location to location.The personal mobility in SIP is based on a unique personal identifier,such as a personal number. SIP services for a subscriber can be directedto the subscriber when the subscriber is located at home 102. Inaccordance with a preferred embodiment of the present invention, a SIPenabled set-top device is provided in home 102 to integrate services fora subscriber at home 102. More information on SIP may be found in “SIP:Session Initiation Protocol”, IETF RFC 2543,http://ietf.org/rferfc2543.txt, March 1999.

Turning next to FIG. 2, a diagram of components in a home is depicted inaccordance with a preferred embodiment of the present invention. In thisexample, home 200 is an example of a home in a communications system,such as home 102 in FIG. 1. Home 200 includes a set-top device 202,which provides a common point for distributing services in home 200. Inthis example, set-top device 202 acts as a client to receive services.Telephone 204 is connected to set-top device 202 through which asubscriber may receive telephone calls. Also, stereo 206 and television208 are connected to set-top device 202 through which programming from acable network may be displayed. Of course, a wireless connection alsomay be provided to a satellite service provided in place of or inaddition to a cable content provider. Video cassette recorder (VCR) 210and digital versatile disc (DVD) player 212 are also connected toset-top device 202. Set-top device 202 also provides a mechanism forsubscriber input and control of devices using input devices, such as,for example, remote control 214 and infrared (IR) keyboard 216. Set-topdevice 202 is able to provide for control of both devices connected toset-top device 202 and to devices not connected to set-top device 202through remote control 214 or IR keyboard 216. Remote control 214 or IRkeyboard 216 also may include a microphone to allow for voice activatedcommands, recording, or transmitting a subscriber's voice to set-topdevice 202. This control may be provided using a number of differentmechanisms. In the depicted example, an infrared (IR) system is used inwhich input or commands are received from remote control 214 or IRkeyboard 216, and appropriate commands are transmitted to devices usingIR transmissions. For example, set-top device 202 may program VCR 210 torecord a program via remote control 214. The input may be receivedthrough a SIP message from proxy server 218 by the subscriber at client220 in a different geographic location, which may be, for example, inthe next room or at the office. Set-top device 202 programs VCR 210 bysending a set of IR signals recognized by VCR 210. Examples of IRprogramming systems are found in U.S. Pat. No. 5,151,789 entitled Systemand Method for Automatic, Unattended Recording of Cable TelevisionPrograms and U.S. Pat. No. 5,692,214, entitled System for UnattendedRecording of Video Programs by Remote Control Transmitted Module WhichReceives User Selection From a Personal Computer.

With reference now to FIG. 3, a block diagram illustrating a SIP enabledset-top device is depicted in accordance with a preferred embodiment ofthe present invention. Set-top device 300 is an example of a set-topdevice in which code or instructions implementing the processes of thepresent invention may be located. Set-top device 300 is also referred toas a “set-top box”. Set-top device 300, in a preferred embodiment,employs a peripheral component interconnect (PCI) local busarchitecture. Although the depicted example employs a PCI bus, other busarchitectures, such as Accelerated Graphics Port (AGP) and IndustryStandard Architecture (ISA) may be used.

Processor 302 and main memory 304 are connected to PCI local bus 306through PCI bridge 308. PCI bridge 308 also may include an integratedmemory controller and cache memory for processor 302. Connections to PCIlocal bus 306 may be made through direct component interconnection orthrough add-in boards. Local area network (LAN) adapter 310 connects toPCI local bus 306 and provides a connection, such as an ethernetconnection, to a proxy server, such as proxy server 110 in FIG. 1. Inthese examples, multimedia services may be delivered through theconnection provided by LAN adapter 310. Delivery mechanisms, such ashigh bandwidth twisted pair, DSL, and optical fiber, are examples ofother mechanisms, which may be used to deliver multimedia services. Inthis example, multimedia services, such as video on demand, channelguides, and browser functions, may be delivered through a single networkconnection. In such a case, a cable television connection may beunnecessary. LAN adapter 310 provides a physical connection to allowset-top device 300 to communicate with a server using SIP via a SIPenabled application or software located on set-top device 300. The SIPenabled application or software used to facilitate these multimediaservices may be found in the form of instructions executed by processor302. The instructions may be located in main memory 304 or in some otherstorage device, such as a read only memory or a hard disk drive.

Audio adapter 312 and video adapter 314 are connected to PCI local bus306. These components also are connected to tuner unit 316 in set-topdevice 300. Tuner unit 316 receives radio frequency (RF) signals andsends audio components to audio adapter 312 and video adapter 314. Thesesignals may be received from different sources, such as, for example, acable network. In particular, tuner unit 316 will convert and filterfrequency modulated (FM) channels into an intermediate frequency (IF)channel. Further, tuner unit 316 includes circuitry necessary todemodulate the signal to obtain video and audio data for transmission toaudio adapter 312 and video adapter 314. Audio adapter 312 and videoadapter 314 send the signals from tuner unit 316 to outputs forpresentation to a user or subscriber. Also, audio adapter 312 and videoadapter 314 include inputs to receive audio and video for processing.For example, the inputs may be used to receive a program from a device,such as DVD player 212 in FIG. 2, for presentation on a television orother display attached to set-top device 300.

In this example, set-top device 300 also includes a media adapter 318.Media adapter 318 includes a general purpose programmable mediaprocessor for use in receiving and processing multiple media datastreams including, for example, audio, video, and data. An example of amedia processor, which may be used in media adapter 318, is found inU.S. Pat. No. 5,794,061, entitled General Purpose, Multiple PrecisionParallel Operation, Programmable Media Processor. Media adapter 318 mayprovide output to various components connected to set-top device 300 inconjunction with or in place of audio adapter 312 and video adapter 314.A telephone/modem adapter 320 is also provided in which voice calls anddata from a PSTN may be facilitated.

Next, expansion bus interface 322 provides a connection for a keyboardand mouse adapter 324 and an infrared (Pa) adapter 326. A keyboard and apointer, such as a mouse, may be attached by a cable to set-top device300, or input may be received from a wireless keyboard, mouse, or remotecontrol. Although, in the depicted examples, IR input devices are used,other types of wireless input systems may be used in combination with orin place of the IR system, such as, for example, a RF keyboard or remotecontrol.

An operating system runs on processor 302 and is used to coordinate andprovide control of various components within set-top device 300 in FIG.3. The operating system may be a commercially available operating systemsuch as NT Windows or Windows CE, which are available from MicrosoftCorporation. An object oriented programming system, such as Java, mayrun in conjunction with the operating system and provides calls to theoperating system from Java programs or applications executing on set-topdevice 300. “Java” is a trademark of Sun Microsystems, Inc. Instructionsfor the operating system, the object-oriented operating system, andapplications or programs are located on storage devices, such as harddisk drive 328, and may be loaded into main memory 304 for execution byprocessor 302. For example, the applications running on set-top device300 may receive SIP messages from LAN adapter 310 and present messagesor perform functions through set-top device 300. The SIP messagingfunctions may be enabled in instructions, such as applicationprogramming interfaces (APIs).

Those of ordinary skill in the art will appreciate that the hardware inFIG. 3 may vary depending on the implementation. Other internal hardwareor peripheral devices, such as flash ROM (or equivalent nonvolatilememory) or optical disk drives and the like, may be used in addition toor in place of the hardware depicted in FIG. 3. Also, the processes ofthe present invention may be applied to a multiprocessor set-top device.The depicted example in FIG. 3 and the above-described examples are notmeant to imply architectural limitations. For example, the mechanism andprocesses of the present invention may be implemented in other types ofdevices other than a set-top device, such as a computer, a television,an adapter for a computer, or a personal computer configured for use inan automobile. Also, although a bus is illustrated, the components inFIG. 3 may be connected using any mechanism allowing communicationbetween the components.

In FIG. 4, a functional diagram of components in a SIP enabledapplication is depicted in accordance with a preferred embodiment of thepresent invention. SIP application 400, in these examples, isimplemented in a set-top device, as shown in set-top device 300 in FIG.3. SIP application 400, in these examples, is employed to providemultimedia services to a user through a connection to a server.

SIP application 400 includes a SIP control 402, which controls audiodriver 404, video driver 406, and IR driver 408 in these examples. Thesedrivers form a multimedia interface in SIP application 400 to sendmultimedia content to output devices. SIP control 402 provides aninterface through an ethernet connection to a network using LAN adapter310 in FIG. 3. An interface for SIP control 402 to a PSTN also may beprovided through a twisted pair using telephone/modem adapter 320 inFIG. 3. Audio driver 404 is software for processing audio using audioadapter 312 in FIG. 3, while video driver 406 is software for processingvideo using video adapter 314 in FIG. 3. Audio driver 404 allows foraudio to be received at SIP application 400 from a source, such as acable or satellite network, and transmitted to a device, such as, forexample, a stereo or speakers in a television. Video driver 406 providesfor receiving video in SIP application 400 and transmitting video fromSIP application 400. The video may be received from a cable connectionand transmitted to a television or other monitor. IR driver 408 issoftware for sending and receiving IR signals to control various devicesin accordance with a preferred embodiment of the present invention. Thedevice may include, for example, a VCR, CD player, DVD player, computer,or a television.

SIP control 402 includes the appropriate interfaces, such as, forexample, application programming interfaces (APIs), to communicate withthe various drivers in ST application 400. The actual drivers employeddepend on the hardware used to implement ST application 400. Morespecifically, SIP control 402 exchanges SIP messages with a source, suchas a proxy server, to setup a session. The session may involve, forexample, a telephone call, a video, or controlling various devices. Thiscontrol may be, for example, programming a VCR to record a program.

Although the depicted example in FIG. 4 shows SIP application 400implemented in a set-top device, SIP application 400 may be implementedinto other devices, such as, for example, a computer, a television, anadapter for use in a computer, or a personal computer configured for usein an automobile. The functions provided by SIP application 400 may beimplemented entirely in software, hardware, or a combination of the two.

Turning next to FIG. 5, a flowchart of a process for registering asubscriber is depicted in accordance with a preferred embodiment of thepresent invention. The process is used in a set-top device to register asubscriber with a proxy server. In these examples, the process isimplemented using instructions executed by a processor in the set-topdevice. Such a registration allows for subscriber services to bedirected to the subscriber at the location of the set-top device. Forexample, telephone calls may be directed to the subscriber using thesubscriber's personal number. This registration process involves thepresently available register method in SIP, which allows a user agent toregister with a server by sending a register request.

The process begins by detecting a subscriber at the set-top device (step500). The subscriber may be detected in a number of ways. For example,the subscriber may be detected when the set-top device is turned on orwhen a control device, such as a remote control, is activated. Next, apersonal number associated with the subscriber is identified (step 502).The personal number associated with the subscriber may be stored in astorage device, such as, for example, a hard disk drive or othernonvolatile memory, within the set-top device. Alternatively, thepersonal number may be identified by the subscriber entering thepersonal number. This number may be entered in a number of ways, such asthrough a keyboard or remote control unit. In this manner, multiplesubscribers are able to access the set-top device. Next, the set-topdevice sends a register request to a proxy server for the subscriber(step 504). The proxy server will verify the subscriber and identifyservices associated with the subscriber. In this manner, services forthe subscriber can be directed to the subscriber through the set-topdevice. This registration process allows for services and the billing ofservices to follow the subscriber, rather than being based upon aparticular hardware unit. Next, the response is received (step 506) withthe process terminating thereafter.

Turning next to FIG. 6, a flowchart of a process to handle requestsreceived by a set-top device to route calls to a subscriber is depictedin accordance with a preferred embodiment of the present invention. Inthe depicted example, these processes are implemented as instructionsexecuted by a processor, such as processor 302 in FIG. 3. The processbegins with the set-top device receiving a request (step 600). Thisrequest may take different forms, such as, for example, a call from acalling party, a message, or a Web page being pushed to the subscriber.The type of media being used at the set-top device is identified (step602). Step 602 may be accomplished in a number of ways, such as forexample, polling for active data streams being sent to devices attachedto the set-top device. A determination is made as to whether thesubscriber can be alerted using the identified media (step 604). Forexample, if the subscriber is watching the television, the subscribermay be alerted using a message on the screen and/or by an audio promptto obtain the subscriber's attention in case the subscriber is notlooking at the television screen. Thereafter, options are presented tothe subscriber using a media type, which matches the media type in therequest (step 606). A determination is made as to whether a subscriberselection has been received (step 608). A check is made as to whether auser input, such as, for example, the depressing of a selected key, hasoccurred. If a subscriber selection is not received, a determination ismade as to whether a timeout has occurred (step 610). A timer functionmay be checked to see if time has expired to identify a timeout. If atimeout has not occurred, the process returns to step 608. When asubscriber selection is received in step 608, the selected action isperformed (step 612) with the process terminating thereafter.

With reference again to step 610, if a timeout has occurred, the messageor content is stored for later presentation to the subscriber (step 614)with the process terminating thereafter. The message, in this example,is stored in a persistent memory, such as a hard drive or nonvolatilerandom access memory. With reference again to step 604, if the mediatype being used does not allow for the subscriber to be alerted, theprocess also proceeds to step 614. This situation may occur, forexample, if no devices are turned on or if the subscriber is only usingthe VCR to tape a program without the television being turned on. Inthese examples, the subscriber cannot be alerted using a device in thehome. Alternatively, the set-top device may include controls to turn ona device to alert the subscriber. The controls may include, for example,sending an IR signal to turn on a television or stereo. With respect tooutgoing calls, a subscriber may obtain a charge rate based on theidentification of the subscriber, rather than the particular set-topdevice.

Turning next to FIGS. 7A and 7B, diagrams illustrating a presentation ofoptions to a subscriber for incoming call screening are depicted inaccordance with a preferred embodiment of the present invention. Theseoptions may be implemented using instructions executed by a processor inthe set-top device, such as processor 302 in FIG. 3. In this example,the subscriber is viewing a program on display 700 of a television inFIG. 7A. An incoming call is routed to the set-top device and theset-top device displays incoming call information in section 702 of menu704 in display 700. In this example, the call information includes anidentification of a party and a telephone number. Additionally, callhandling options are presented to the user in section 706 in menu 704.Some possible call handling options are to answer the call, send thecall to voice mail, forward the call, or cancel the call. Thisinformation may be presented in a menu or guide type format while aprogram is currently being presented to the user. Input from thesubscriber as to how the call should be handled may be generated using aremote control device. Based on the subscriber input, the set-top devicemay send back the appropriate SIP messages to handle the call.

In this example, if the subscriber decides to answer the call, the callmay be routed to the set-top device, and the call may be facilitatedthrough the devices connected to the set-top device. For example, thecaller's voice may be presented to the subscriber through speakers inthe television, and the subscriber may talk to the caller through amicrophone located in the remote control. If the subscriber decides tosend the call to voice mail, the set-top device may accept the call androute it to a voice mail system in the set-top device or may send amessage to the proxy server to redirect the call to a voice mail servicefor the subscriber. If the subscriber decides to forward the call, menu708 is displayed within display 700 in FIG. 7B. In this example, thesubscriber may forward the call to a home phone or to a mobile phone.Depending on the selection made by the subscriber, the set-top devicewill send the appropriate SIP messages to have the call forwarded to theappropriate number. If the subscriber decides to cancel the call, thecall will not be answered and may be terminated by the set-top device.

With reference now to FIG. 8, a flowchart of a process for callscreening is depicted in accordance with a preferred embodiment of thepresent invention. The processes in FIG. 8 may be implemented in a SIPcontrol component, such as SIP control 402 in FIG. 4. The process beginsby receiving a request to connect a call to the subscriber (step 800).Thereafter, call information and call handling options are presented tothe subscriber (step 802). These options may be presented in a number ofways. In the depicted example in FIG. 7A and FIG. 7B, the options arepresented in a menu on a display. Alternatively, the options may bepresented using audible voice prompts played through speaker, such asthose in a television, stereo, or set-top device. Thereafter, subscriberinput is received (step 804). This input may be received by depressingbuttons on a remote control. In these examples, the handling of the callin response to subscriber input results in the set-top device sendingthe appropriate SIP messages to a proxy server. If the subscriberselection is voice mail, the call is routed to a voice mail system (step806) with the process terminating thereafter. If the subscriberselection is to terminate the call, the call remains unanswered (step808) with the process terminating thereafter.

A selection of a forwarding option results in the display of a menu withdifferent forwarding selections (step 810). This menu may be a menu,such as menu 708 in FIG. 7B, in which different destinations may beselected in forwarding the call. Subscriber input is then received (step812). Thereafter, the call is forwarded to the selected option (step814) with the process terminating thereafter. If the subscriber input isto answer the call, the call is answered using the set-top device (step816) with the process terminating thereafter.

The set-top device of the present invention also may provide channelguide information through a source, such as a proxy server, using SIPmessaging. In this manner, channel guides for current programming andfuture programming may be provided. Further, these channel guides may betailored to the specific preferences of a subscriber. A custom channelguide may be provided to the subscriber at any set-top device locationat which the subscriber registers. After registering, a selected remotecontrol button or command code may be used to initiate the sending of aSIP message to a server requesting channel guide information. Responsesfrom the proxy server, in these examples, also are sent using SIPmessages. Because SIP is session based and not call based, anyinformation may be placed into the body of a SIP message. In thisexample, channel guide information is placed in SIP messages.

Turning next to FIG. 9, a diagram of a channel guide is depicted inaccordance with a preferred embodiment of the present invention. Channelguide 900, in this example, is a channel guide that may be displayedusing channel guide information returned in SIP messages. This channelguide may be a custom channel guide that can be presented to asubscriber at any set-top device at which the subscriber has registeredwith a server. The subscriber may scroll through channel guide 900 usinga remote control device and select a desired channel. In response tosuch a selection, the set-top device sends the appropriate controlsignals, such as IR signals, to the television to change a channel.Alternatively, the set-top device selects the appropriate channel fromthe cable or satellite network.

With reference now to FIG. 10, a flowchart of a process for displayingchannel guide information is depicted in accordance with a preferredembodiment of the present invention. The processes in FIG. 10 may beimplemented in a SIP control component, such as SIP control 402 in FIG.4. The process begins by receiving a subscriber request for a channelguide (step 1000). In response, a set-top device sends a request for achannel guide (step 1002). In the depicted example, the request is inthe form of a SIP message sent to a proxy server. Channel guideinformation is received (step 1004), and the guide is presented on thescreen of the television (step 1006). This channel guide information isreceived in SIP messages. Subscriber input selecting a channel from achannel guide is received (step 1008). In response to this input, thechannel is changed to the selected channel (step 1010) with the processterminating thereafter.

With reference now to FIG. 11, a flowchart of a process for retrievingdifferent types of media streams is depicted in accordance with apreferred embodiment of the present invention. The processes in FIG. 11may be implemented in a SIP control component, such as SIP control 402in FIG. 4. The processes may be used to enable reception of varioustypes of streams, such as MPEG2.

The process begins by receiving a subscriber request for content (step1100). This content may be a media stream, such as, for example, a musicor a video stream. A music stream may be, for example, a single song oran entire album. The video stream may be, for example, a music video ora movie.

A determination is made as to whether sufficient bandwidth is availablefor the requested content (step 1102). If sufficient bandwidth isavailable, a SIP message is sent to a proxy server to initiate receiptof the requested content (step 1104). Thereafter, the content isreceived and decoded (step 1106). The decoding may occur using differentmechanisms, such as processor 302 in FIG. 3 or a digital signalprocessor (DSP) in LAN adapter 310 in FIG. 3. A determination is thenmade as to whether the content is to be presented immediately (step1108). If the content is to be viewed immediately, the content is sentto the appropriate output device (step 1110) with the processterminating thereafter. Otherwise, the content is stored in a storagedevice in communication with the set-top device for later presentation(step 1112). The storage device may be, for example, hard disk 328 inFIG. 3 or some other persistent storage device. Then, an alert is sentto let the subscriber know that the content has been received (step1114) with the process terminating thereafter. This alert may be audio,visual, or a combination of the two using devices connected to or incommunication with the set-top device. This alert may be, for example, amessage light on the set-top device indicating that a message has beenreceived. A message may be stored identifying the content that has beenreceived for presentation.

With reference again to step 1102, if the bandwidth is insufficient toprovide the requested media, an error message is presented to thesubscriber (step 1116) with the process terminating thereafter. In thismanner, media streams for media, such as music and videos, may beobtained by a subscriber through SIP messaging. Further, withregistration procedures for subscribers provided using SIP, a subscribercan have a pay-per-view type of program charged to the subscriber'saccount at any set-top device that is SIP enabled and provides forregistering a subscriber.

Through a SIP enabled set-top device, pages from Web sites may bereceived using push technology. Pages that are “pushed” to the set-topdevice may be displayed to a user using a browser program in the set-topdevice. The browser program provided in the set-top device may be anycurrently available browser, such as, for example, Netscape Navigator.Netscape Navigator is available from Netscape CommunicationsCorporation. For example, in FIG. 12, a diagram of a Web page pushed toa subscriber is depicted in accordance with a preferred embodiment ofthe present invention. Page 1200 is displayed on a display device, suchas a television, connected to the set-top device. In this example, acurrent movies link 1202, a current top 40 music link 1204, and a newcar link 1206 are present in Web page 1200. A subscriber may select oneof these links to obtain pages associated with these links. Thesubscriber may select links and close the browser using a remote controldevice in these examples. Of course, other mechanisms may be used toobtain pages. For example, graphical icons may be used to identifypages.

With reference now to FIG. 13, a flowchart of a process for SIP enabledbrowsing is depicted in accordance with a preferred embodiment of thepresent invention. In a fashion similar to receiving a telephone call,SIP messages may be used to indicate a page being pushed to thesubscriber. The process begins by receiving a page from the server (step1300). A server may be the proxy server at which the subscriber isregistered. A determination is then made as to whether video is beingpresented to the subscriber (step 1302). The process may identify activedatastreams being sent to devices to see if a video datastream is beingpresented. More specifically, this identification may be made bydetermining whether video driver 406 in SIP application 400 in FIG. 4 issending data to a display device. If video is being presented to thesubscriber, an option to view the page is presented to the subscriber(step 1304). If the subscriber selects the option to view the page (step1306), a browser is opened (step 1308), and the page is presented (step1310). Thereafter, subscriber input is received (step 1312). Adetermination is then made as to whether a link has been selected (step1314). If a link has been selected, a page associated with the link isretrieved (step 1316) with the process then returning to step 1312.Otherwise, a determination is made as to whether the subscriber input isto close the browser (step 1318). If the subscriber input is to closethe browser, the browser is closed (step 1320) with the process thenterminating. Otherwise, the process returns to step 1312.

With reference again to step 1306, if the subscriber chooses not to viewthe page, the page is stored for later viewing (step 1322) with theprocess terminating thereafter. The subscriber may be currently watchinga video or may not have time to view the page received from the proxyserver. The storing of the page allows the subscriber to view the“pushed” page at a later time. With reference again to step 1302, if thevideo function is not in use, the process also proceeds to step 1322 asdescribed above. In this situation, the television may be turned offwith the subscriber listening to music using the stereo.

Thus, the present invention provides a mechanism for providing a SIPend-point in a communications device, such as SIP application 400 inFIG. 4. The illustrated examples implement a ST application in a set-topdevice, which allows various functions and features to be added to atypical set-top device. The present invention increases the capabilitiesof existing audio and video media devices without replacing them.Further, the processes of the present invention allow for customizedfeatures to be tailored or directed to a subscriber at any SIP enabledset-top device at which the subscriber registers. This directing ofservices and features is enabled through a registration process presentin SIP.

It is important to note that while the present invention has beendescribed in the context of a fully functioning communications device,those of ordinary skill in the art will appreciate that the processes ofthe present invention are capable of being distributed in the form of acomputer readable medium of instructions and in a variety of forms.Further, the present invention applies equally regardless of theparticular type of signal bearing media actually used to carry out thedistribution. Examples of computer readable media includerecordable-type media such as floppy disc, a hard disk drive, a RAM, aCD-ROM, a DVD-ROM, and transmission-type media, such as digital andanalog communications links, wired or wireless communications linksusing transmission forms, such as, for example, radio frequency andlight wave transmissions. The computer readable media may take the formof coded formats that are decoded for actual use in a particularcommunications device.

The description of the present invention has been presented for purposesof illustration and description, and is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the art. Forexample, although the depicted examples used SIP, otherapplication-layer control protocols may be used in place of SIP.Further, the SIP application of the present invention may be implementedin devices other than a set-top device, as shown in the examples. Acomputer, a television, and an adapter for use in a computer are someexamples of other devices in which the SIP application may beimplemented. The embodiment was chosen and described in order to bestexplain the principles of the invention, the practical application, andto enable others of ordinary skill in the art to understand theinvention for various embodiments with various modifications as aresuited to the particular use contemplated.

1. A method of controlling delivery of media content, the method comprising, at a network server: receiving a request for media channel guide information from a remote subscriber device; sending the media channel guide information to the remote subscriber device in response to the request; receiving a request for delivery of media content associated with a selected media channel; and directing media channel content associated with the selected media channel to a media channel recording device associated with the subscriber.
 2. The method of claim 1, wherein the media channel recording device is located remote from the network server and is connected to the network server via a communication network.
 3. The method of claim 2, wherein the network server directs the media channel content associated with the selected media channel to the media channel recording device via the remote subscriber device.
 4. The method of claim 1, further comprising receiving an indication from the remote subscriber device that the media channel content associated with the selected media channel is to be sent to the media channel recording device, wherein the step of directing the media channel content to the media channel recording device is performed responsive to the received indication.
 5. The method of claim 1, further comprising: receiving at the network server a registration request from the remote subscriber device to register the subscriber for a media content delivery service; responsive to the registration request, registering the subscriber for the media content delivery service; and sending a registration response to the remote subscriber device confirming registration of the subscriber for the media content delivery service.
 6. The method of claim 5, wherein registering the subscriber comprises associating the subscriber with a personal identifier.
 7. The method of claim 6, wherein the personal identifier is an identifier associated with the remote subscriber device.
 8. The method of claim 6, wherein the personal identifier is an identifier input at the remote subscriber device.
 9. The method of claim 1, wherein communication between the network server and the remote subscriber devices uses an application layer control protocol.
 10. The method of claim 9, wherein the application layer control protocol is Session Initiation Protocol (SIP).
 11. A network server for controlling delivery of media content, the network server comprising: a media channel guide request processing function operable: to receive a request for media channel guide information from a remote subscriber device; and to send media channel guide information to the remote subscriber device in response to the request; and a media channel content request processing function operable: to receive a request for delivery of media content associated with a selected media channel; and to direct media channel content associated with the selected media channel to a media channel recording device associated with a subscriber.
 12. The network server of claim 11, wherein the media channel content request processing function is operable to send the selected media channel to a media channel recording device which is located remote from the network server and is connected to the network server via a communication network.
 13. The network server of claim 12, wherein the network server is operable to direct media channel content associated with the selected media channel to the media channel recording device via the remote subscriber device.
 14. The network server of claim 11, wherein the media channel content request processing function is operable: to receive an indication from the remote subscriber device that the media channel content associated with the selected media channel is to be sent to the media channel recording device; and to send the media channel content to the media channel recording device responsive to the received indication.
 15. The network server of claim 11, further comprising a registration request processing function operable: to receive at the network server a registration request from the remote subscriber device to register the subscriber for a media content delivery service; to register the subscriber for the media content delivery service responsive to the registration request; and to send a registration response to the remote subscriber device confirming registration of the subscriber for the media content delivery service.
 16. The network server of claim 15, wherein the registration request processing function is operable to associate the subscriber with a personal identifier.
 17. The network server of claim 16, wherein the personal identifier is an identifier associated with the remote subscriber device.
 18. The network server of claim 16, wherein the personal identifier is an identifier input at the remote subscriber device.
 19. The network server of claim 11, wherein the network server is operable to communicate between the network server and the remote subscriber devices using an application layer control protocol.
 20. The network server of claim 19, wherein the application layer control protocol is Session Initiation Protocol (SIP). 